;-- internal functions for the library --
function WMIGetTypeFromStr( $RegValueType )
function WMIGetHandleAndKeyFromStr( $strRegKey )
Function WMIConnectEx(Optional $namespace, Optional $SecuritySettings, Optional $strcomputer, optional $username, optional $password )


;-- low-level function --
function WMIRegistryEnumValuesAndTypesEx( $hDefKey, $strRegkey, $objWMIService )
function WMIRegistryEnumKeyEx( $hDefKey, $strRegkey, $objWMIService )
function WMIRegistryReadValueWithTypeEx( $hDefKey, $strRegkey, $strRegValueName, $RegValueType, $objWMIService )
function WMIRegistryReadValueEx( $hDefKey, $strRegkey, $strRegValueName, $objWMIService )
function WMIRegistryWriteValueEx( $hDefKey, $strRegkey, $strRegValueName, $RegValue, $RegValueType, $objWMIService )
function WMIRegistryDeleteValueEx( $hDefKey, $strRegkey, $strRegValueName, $objWMIService )
function WMIRegistryCreateKeyEx( $hDefKey, $strRegkey, $objWMIService )
function WMIRegistryDeleteKeyEx( $hDefKey, $strRegkey, $objWMIService )
function WMIRegistryCheckAccessEx( $hDefKey, $strRegkey, $AccessRequired, $objWMIService )

parameters for low-level functions
    $objWMIService   object   to registry connection (returned by high-level function WMIRegistryOpen)
	$hDefKey         integer  handle for hive (see $chDefHKEY_xxx constants)
	$strRegKey       string   name of registry key (without hive and computer. example : software\Microsoft)
	$strValueName    string   name of value to read, write or delete
	$RegValueType    integer  type of registry value (see $cRegType_REG_xxx constants)
	$RegValue                 content to write in a value of the registry
    $AccessRequired  integer  combinaison of value for access to check (see $cRegAccessxxxx constants)



;-- high-level function --
function WMIRegistryOpen( optional $strComputer, optional $username, optional $password )
function WMIRegistryEnumValuesAndTypes( $strRegkey, optional $strComputer, optional $username, optional $password )
function WMIRegistryEnumKey( $strRegkey, optional $strComputer, optional $username, optional $password )
function WMIRegistryReadValue( $strRegkey, $strRegValueName, optional $strComputer, optional $username, optional $password )
function WMIRegistryReadValueWithType( $strRegkey, $strRegValueName, $strRegValueType, optional $strComputer, optional $username, optional $password )
function WMIRegistryWriteValue( $strRegkey, $strRegValueName, $RegValue, $strRegValueType, optional $strComputer, optional $username, optional $password )
function WMIRegistryDeleteValue( $strRegkey, $strRegValueName, optional $strComputer, optional $username, optional $password )
function WMIRegistryCreateKey( $strRegkey, optional $strComputer, optional $username, optional $password )
function WMIRegistryDeleteKey( $strRegkey, optional $strComputer, optional $username, optional $password )
function WMIRegistryCheckAccess( $strRegkey, $AccessRequired, optional $strComputer, optional $username, optional $password )

parameters for high-level functions
	$strRegKey       string for registry key (without hive and computer. example : software\Microsoft)
	$strRegKey       string   name of registry key (without hive and computer. example : software\Microsoft)
	$strValueName    string   name of value to read, write or delete
	$strRegValueType string   type of registry value (REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ, REG_DWORD, REG_BINARY)
    $AccessRequired  integer  combinaison of value for access to check (see $cRegAccessxxxx constants)
	$strComputer     string   name of the computer where actions to be done
	$username        string   user identity to use for remote actions
	$password        string   password of user

returned
    WMIRegistryEnumValuesAndTypesEx and WMIRegistryEnumValuesAndTypes return an
	array of 2 items. First is an array of values name, second is an array of value type


